
package becas;
import java.io.*;




public class Becas {

private String RespuestaUso;
int AlumnoMayorPuntuacion;
int resultado = 0; 

public void ResivirRespuestaUso () /*throws IOException*/ {
try{
    BufferedReader Entrada = new BufferedReader(new InputStreamReader(System.in));
 
        do {
           System.out.println("Este programa Selecciona a dos Alumnos para Otorgarles una beca");
            System.out.println("Desea Utilizar el Programa");
            System.out.println("S = Si, N= No");
                   
            RespuestaUso = Entrada.readLine();

        } while (RespuestaUso.equals("s") && RespuestaUso.equals("n") && RespuestaUso.equals("S") && RespuestaUso.equals("N"));        
}catch (Exception AX){
    System.out.print("Error de Captura"+AX.getMessage());
    System.out.print("No se Permiten numeros"+AX.getMessage());  
}
}
public void ResivirRespuestaRepetir () /*(throws IOException*/ {
 BufferedReader Entrada = new BufferedReader(new InputStreamReader(System.in));
 try{
        do {
            System.out.println("Desea Utilizar el Programa de nuevo?");
            System.out.println("S = Si, N= No");
                   
            RespuestaUso = Entrada.readLine();

        } while (RespuestaUso.equalsIgnoreCase("s"));
 }catch (Exception AX){
     System.out.print("Error de Captura"+AX.getMessage());
     System.out.print("No se Permiten numeros"+AX.getMessage());  
 }
}
public void DesplegarReporte (int CantAlumnos,int CantAtributos,String NombreAlumno[],String SexoAlumno[],String CarreraAlumno[],float PromedioAlumno[]
        ,float PuntosTotales[],String AspectosAlumno[], int PuntuacionAspectos [][]) {
System.out.println("|_____________Evaluación de alumnos candidatos a obtención de beca________________________|");
System.out.print("|" + "Nombre de Alumno_" + "|___" + "Sexo" + "|___" + "Carrera"+"|___"+ "Promedio");for (int In =0;In<CantAtributos;In++){System.out.print("|___|"+AspectosAlumno[In]);}System.out.println("|___"+"Puntos Totales"+"|");
for(int Loc=CantAlumnos-1;Loc>=0;Loc--){
System.out.print  ("|_______|"+NombreAlumno[Loc]
                  +"|_______|"+SexoAlumno[Loc]
                  +"|_______|"+CarreraAlumno[Loc]
                  +"|_______|"+PromedioAlumno[Loc]);
                for(int col=CantAlumnos-1;col>=0;col--){ 
                for(int reng=CantAlumnos-1;reng>=0;reng--){  
                
System.out.print  ("|_______|"+PuntuacionAspectos[reng][col]);
                 
                }}
System.out.println("|_______|"+PuntosTotales[Loc]+"_______|");  

}}

public int AlumnoMayorPuntuacion (float PuntosTotales [], String NombreAlumno[]){  
resultado = (int) PuntosTotales[0];
for(int i=0; i<PuntosTotales.length; i++)
{
if(PuntosTotales[i] > resultado)
{
PuntosTotales [i] = AlumnoMayorPuntuacion;
}
}
System.out.println("El Alumno con Mayor Puntuacion es: "+NombreAlumno[AlumnoMayorPuntuacion]);
return resultado;
}


public void DesplegarDespedida () {
System.out.println("Que tenga un Buen Dia Gracias");
}

    public static void main(String[] AX) /*throws IOException*/ {
       
       Becas Bc = new Becas ();
       Aspectos As = new Aspectos ();
       Alumnos Al = new Alumnos ();
       Bc.ResivirRespuestaUso();
       while (Bc.RespuestaUso.equalsIgnoreCase("s"))  {
          
       Al.PedirCantAlumnos();
       As.PedirCantAtributos(Al.CantAlumnos);
       Al.IngresarNombreAlumno();
       Al.IngresarSexoAlumno();
       Al.IngresarCarreraAlumno();
       As.IngresarPromedioAlum(Al.CantAlumnos, Al.NombreAlumno);
       As.IngresarNombreAspectos();
       As.IngresarPuntuacionAspetos(Al.CantAlumnos, As.AspectosAlumno);
       As.CalcularPuntosTotales(Al.CantAlumnos);
       Bc.ResivirRespuestaRepetir(); 
       }
       Bc.DesplegarReporte(Al.CantAlumnos,As.CantAtributos,Al.NombreAlumno,
       Al.SexoAlumno,Al.CarreraAlumno,As.PromedioAlumno,As.PuntosTotales,
       As.AspectosAlumno,As.PuntuacionAspectos);
       Bc.AlumnoMayorPuntuacion(As.PuntosTotales,Al.NombreAlumno);
       Bc.DesplegarDespedida();
    }
}
